package com.web.base.open.facade;

import com.blue.jdbc.Page;
import com.web.base.open.message.AccountRequest;
import com.web.base.open.message.AccountResponse;
import com.web.base.open.message.RoleAccountRequest;
import com.web.base.open.message.RoleResponse;

import java.util.List;

/**
 * 开放平台帐号接口
 * 
 * @author 代码由 blue-code 框架生成
 * @since 1.0 2017年02月27日
 */
public interface AccountFacade
{

	/**
	 * 添加开放平台帐号
	 */
	AccountResponse add(AccountRequest request);

	/**
	 * 更新开放平台帐号
	 */
	AccountResponse update(AccountRequest request);
	
	/**
	 * 查询单个开放平台帐号
	 */
	AccountResponse get(Integer id);
	
	/**
	 * 查询开放平台帐号，分页
	 */
	Page<AccountResponse> listPage(AccountRequest request, int start, int size);
	
	/**
	 * 查询开放平台角色关联的链接
	 */
	List<RoleResponse> listSelect(Integer id);
	
	/**
	 * 保存开放平台角色-帐号关联关系
	 */
	void saveRoleAccount(RoleAccountRequest request);
	
	/**
	 * 帐号登录
	 */
	String login(String name, String secret);
	
	/**
	 * 验证令牌是否有效
	 */
	boolean verify(String token);
	
	/**
	 * 根据令牌获取帐号
	 */
	AccountResponse getByCode(String token);
	
	/**
	 * 验证是否有权限访问
	 */
	boolean auth(String token, String url);
	
}
